package com.samp.base.json.gjson;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.google.gson.Gson;

/**
 * gson文档：https://www.jianshu.com/p/558844c96fc1
 * 1:注意：平常使用Gson，没有自定义的Adaptor，Gson是线程安全的。
 * 2:有嵌套类时，尽量不要使用内部类，因为访问不了，要特殊处理。
 *
 */
public class GsonDemo {
	
	public static String mapToJson(){
		Map<String, Object> map = new HashMap<>();
		map.put("name", "张三");
		map.put("age", 18);
		map.put("stature", 173.5);
		map.put("bashPath", "D:\\temp\\jsonToSolr");
		map.put("profile", "\"hello\", the first word he said.");
		map.put("arrayStr", new String[]{"张三","李四","王五"});
		map.put("arrayInt", new Integer[]{11,12,13});
		List<String> list = new ArrayList<>();
		list.add("list_a");
		list.add("list_b");
		list.add("list_c");
		map.put("list", list);
		Gson gson = new Gson();
		String jsonStr = gson.toJson(map);
		System.out.println(jsonStr);
		return jsonStr;
	}
	
	@SuppressWarnings("rawtypes")
	public static void jsonToMap(){
		String jsonStr = mapToJson();
		Gson gson = new Gson();
		Map map = gson.fromJson(jsonStr, Map.class);
		System.out.println(map);
	}

	public static void main(String[] args) {
		jsonToMap();
	}

}
